home *** CD-ROM | disk | FTP | other *** search
/ Aminet 2 / Aminet AMIGA CDROM (1994)(Walnut Creek)[Feb 1994][W.O. 44790-1].iso / Aminet / util / gnu / textutils_1_3.LHA / textutils-1.3 / cat / tr.1 < prev    next >
Text File  |  1992-09-22  |  10KB  |  331 lines

  1.  
  2.  
  3.  
  4. TR(1L)            MISC. REFERENCE MANUAL PAGES             TR(1L)
  5.  
  6.  
  7.  
  8. NAME
  9.      tr - translate or delete characters
  10.  
  11. SYNOPSIS
  12.      tr      [-cst]      [--complement]       [--squeeze-repeats]
  13.      [--truncate-set1] string1 string2
  14.      tr {-s,--squeeze-repeats} [-c] [--complement] string1
  15.      tr {-d,--delete} [-c] string1
  16.      tr {-d,--delete} {-s,--squeeze-repeats} [-c]  [--complement]
  17.      string1 string2
  18.  
  19. DESCRIPTION
  20.      This manual page documents the GNU version of tr. tr  copies
  21.      the standard input to the standard output, performing one of
  22.      the following operations:
  23.  
  24.           o+ translate, and optionally squeeze repeated characters
  25.           in the result
  26.           o+ squeeze repeated characters
  27.           o+ delete characters
  28.           o+ delete characters, then squeeze  repeated  characters
  29.           from the result.
  30.  
  31.      The _s_t_r_i_n_g_1 and (if given) _s_t_r_i_n_g_2 arguments define  ordered
  32.      sets  of  characters,  referred  to  below as set1 and set2.
  33.      These sets are the characters of the input that tr  operates
  34.      on.   The  --_c_o_m_p_l_e_m_e_n_t  (-_c)  option replaces set1 with its
  35.      complement (all of the characters that are not in set1).
  36.  
  37.   SPECIFYING SETS OF CHARACTERS
  38.      The format of the _s_t_r_i_n_g_1 and  _s_t_r_i_n_g_2  arguments  resembles
  39.      the  format  of  regular  expressions; however, they are not
  40.      regular expressions, only lists of characters.  Most charac-
  41.      ters  simply  represent themselves in these strings, but the
  42.      strings can contain the shorthands listed  below,  for  con-
  43.      venience.   Some  of  them  can  be  used only in _s_t_r_i_n_g_1 or
  44.      _s_t_r_i_n_g_2, as noted below.
  45.  
  46.      Backslash excapes.  A backslash followed by a character  not
  47.      listed below causes an error message.
  48.  
  49.      \a   Control-G.
  50.  
  51.      \b   Control-H.
  52.  
  53.      \f   Control-L.
  54.  
  55.      \n   Control-J.
  56.  
  57.      \r   Control-M.
  58.  
  59.      \t   Control-I.
  60.  
  61.  
  62.  
  63. Sun Release 4.1           Last change:                          1
  64.  
  65.  
  66.  
  67.  
  68.  
  69.  
  70. TR(1L)            MISC. REFERENCE MANUAL PAGES             TR(1L)
  71.  
  72.  
  73.  
  74.      \v   Control-K.
  75.  
  76.      \ooo The character with the value given by _o_o_o, which  is  1
  77.           to 3 octal digits.
  78.  
  79.      \\   A backslash.
  80.  
  81.      Ranges.  The notation `_m-_n' expands to all of the characters
  82.      from  _m  through  _n,  in  ascending order.  _m should collate
  83.      before _n; if it doesn't, an error results.  As  an  example,
  84.      `0-9' is the same as `0123456789'.  Ranges can optionally be
  85.      enclosed in square brackets, which has no effect but is sup-
  86.      ported  for  compatibility with historical System V versions
  87.      of tr.
  88.  
  89.      Repeated  characters.   The  notation  `[_c*_n]'  in   _s_t_r_i_n_g_2
  90.      expands  to  _n  copies of character _c.  Thus, `[y*6]' is the
  91.      same as `yyyyyy'.  The notation `[_c*]' in _s_t_r_i_n_g_2 expands to
  92.      as  many  copies  of _c as are needed to make set2 as long as
  93.      set1.  If _n begins with a 0, it  is  interpreted  in  octal,
  94.      otherwise in decimal.
  95.  
  96.      Character classes.  The notation `[:_c_l_a_s_s-_n_a_m_e:]' expands to
  97.      all  of  the  characters  in  the  (predefined)  class named
  98.      _c_l_a_s_s-_n_a_m_e.  The characters expand in no  particular  order,
  99.      except  for the `upper' and `lower' classes, which expand in
  100.      ascending   order.    When    the    --_d_e_l_e_t_e    (-_d)    and
  101.      --_s_q_u_e_e_z_e-_r_e_p_e_a_t_s (-_s) options are both given, any character
  102.      class can be used in _s_t_r_i_n_g_2.  Otherwise, only the character
  103.      classes  `lower'  and  `upper'  are accepted in _s_t_r_i_n_g_2, and
  104.      then only if the corresponding character class (`upper'  and
  105.      `lower',  respectively)  is  specified  in the same relative
  106.      position in _s_t_r_i_n_g_1.  Doing this specifies case  conversion.
  107.      The  class  names  are given below; an error results when an
  108.      invalid class name is given.
  109.  
  110.      alnum
  111.           Letters and digits.
  112.  
  113.      alpha
  114.           Letters.
  115.  
  116.      blank
  117.           Horizontal whitespace.
  118.  
  119.      cntrl
  120.           Control characters.
  121.  
  122.      digit
  123.           Digits.
  124.  
  125.      graph
  126.  
  127.  
  128.  
  129. Sun Release 4.1           Last change:                          2
  130.  
  131.  
  132.  
  133.  
  134.  
  135.  
  136. TR(1L)            MISC. REFERENCE MANUAL PAGES             TR(1L)
  137.  
  138.  
  139.  
  140.           Printable characters, not including space.
  141.  
  142.      lower
  143.           Lowercase letters.
  144.  
  145.      print
  146.           Printable characters, including space.
  147.  
  148.      punct
  149.           Punctuation characters.
  150.  
  151.      space
  152.           Horizontal or vertical whitespace.
  153.  
  154.      upper
  155.           Uppercase letters.
  156.  
  157.      xdigit
  158.           Hexadecimal digits.
  159.  
  160.      Equivalence classes.  The syntax `[=_c=]' expands to  all  of
  161.      the  characters  that  are equivalent to _c, in no particular
  162.      order.  Equivalence classes are a recent invention  intended
  163.      to  support non-English alphabets.  But there seems to be no
  164.      standard way to define them  or  determine  their  contents.
  165.      Therefore,  they  are  not fully implemented in GNU tr; each
  166.      character's equivalence class consists only of that  charac-
  167.      ter, which makes this a useless construction currently.
  168.  
  169.   TRANSLATING
  170.      tr performs translation when _s_t_r_i_n_g_1 and  _s_t_r_i_n_g_2  are  both
  171.      given  and  the  --delete  (-_d)  option  is  not  given.  tr
  172.      translates each character of its input that is  in  set1  to
  173.      the corresponding character in set2.  Characters not in set1
  174.      are passed through unchanged.  When a character appears more
  175.      than  once  in set1 and the corresponding characters in set2
  176.      are not all the same, only the final one is used.  For exam-
  177.      ple, these two commands are equivalent:
  178.           tr aaa xyz
  179.           tr a z
  180.  
  181.      A common use of tr is to  convert  lowercase  characters  to
  182.      uppercase.   This  can be done in many ways.  Here are three
  183.      of them:
  184.           tr abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ
  185.           tr a-z A-Z
  186.           tr '[:lower:]' '[:upper:]'
  187.  
  188.      When tr is performing translation, set1 and set2 should nor-
  189.      mally  have  the same length.  If set1 is shorter than set2,
  190.      the extra characters at the end of set2 are ignored.
  191.  
  192.  
  193.  
  194.  
  195. Sun Release 4.1           Last change:                          3
  196.  
  197.  
  198.  
  199.  
  200.  
  201.  
  202. TR(1L)            MISC. REFERENCE MANUAL PAGES             TR(1L)
  203.  
  204.  
  205.  
  206.      On the other hand, making set1 longer than set2 is not port-
  207.      able;  POSIX.2  says  that the result is undefined.  In this
  208.      situation, the BSD tr pads set2 to the  length  of  set1  by
  209.      repeating the last character of set2 as many times as neces-
  210.      sary.  The System V tr truncates set1 to the length of set2.
  211.  
  212.      By default, GNU tr handles this case like the BSD  tr  does.
  213.      When  the  --truncate-set1 (-_t) option is given, GNU tr han-
  214.      dles this case like the System V tr instead.  This option is
  215.      ignored for operations other than translation.
  216.  
  217.      Acting like the System V tr in this case  breaks  the  rela-
  218.      tively common BSD idiom:
  219.           tr -cs A-Za-z0-9 '\012'
  220.      because it converts only zero bytes (the  first  element  in
  221.      the  complement of set1), rather than all non-alphanumerics,
  222.      to newlines.
  223.  
  224.   SQUEEZING REPEATS AND DELETING
  225.      When given just the --delete (-_d)  option,  tr  removes  any
  226.      input characters that are in set1.
  227.  
  228.      When  given  just  the  --squeeze-repeats  (-_s)  option,  tr
  229.      replaces each input sequence of a repeated character that is
  230.      in set1 with a single occurrence of that character.
  231.  
  232.      When given  both  the  --delete  and  the  --squeeze-repeats
  233.      options,  tr  first  performs any deletions using set1, then
  234.      squeezes repeats from any remaining characters using set2.
  235.  
  236.      The --squeeze-repeats option may also be used when translat-
  237.      ing,  in  which  case  tr  first  peforms  translation, then
  238.      squeezes repeats from any remaining characters using set2.
  239.  
  240.      Here are some examples to illustrate various combinations of
  241.      options:
  242.  
  243.      Remove all zero bytes:
  244.           tr -d '\000'
  245.  
  246.      Put all words on lines by  themselves.   This  converts  all
  247.      non-alphanumeric  characters to newlines, then squeezes each
  248.      string of repeated newlines into a single newline:
  249.           tr -cs '[a-zA-Z0-9]' '[\n*]'
  250.  
  251.      Convert each sequence of repeated newlines to a single  new-
  252.      line:
  253.           tr -s '\n'
  254.  
  255.   WARNING MESSAGES
  256.      Setting the environment variable POSIXLY_CORRECT  turns  off
  257.      several  warning  and  error messages, for strict compliance
  258.  
  259.  
  260.  
  261. Sun Release 4.1           Last change:                          4
  262.  
  263.  
  264.  
  265.  
  266.  
  267.  
  268. TR(1L)            MISC. REFERENCE MANUAL PAGES             TR(1L)
  269.  
  270.  
  271.  
  272.      with POSIX.2.  The messages normally occur in the  following
  273.      circumstances:
  274.  
  275.      1.  When the --_d_e_l_e_t_e option is given but  --_s_q_u_e_e_z_e-_r_e_p_e_a_t_s
  276.      is  not,  and  _s_t_r_i_n_g_2  is given, GNU tr by default prints a
  277.      usage message and exits, because _s_t_r_i_n_g_2 would not be  used.
  278.      The POSIX specification says that _s_t_r_i_n_g_2 must be ignored in
  279.      this case.  Silently ignoring arguments is a bad idea.
  280.  
  281.      2.  When an ambiguous octal escape is given.   For  example,
  282.      \400  is  actually  \40 followed by the digit 0, because the
  283.      value 400 octal does not fit into a single byte.
  284.  
  285.      Note that GNU tr does not provide complete BSD or  System  V
  286.      compatibility.   For  example, there is no option to disable
  287.      interpretation of the POSIX constructs [:alpha:], [=c=], and
  288.      [c*10].   Also,  GNU tr does not delete zero bytes automati-
  289.      cally, unlike traditional UNIX versions,  which  provide  no
  290.      way to preserve zero bytes.
  291.  
  292.      The long-named options can be introduced with `+' as well as
  293.      `--',  for compatibility with previous releases.  Eventually
  294.      support for `+' will be removed, because it is  incompatible
  295.      with the POSIX.2 standard.
  296.  
  297.  
  298.  
  299.  
  300.  
  301.  
  302.  
  303.  
  304.  
  305.  
  306.  
  307.  
  308.  
  309.  
  310.  
  311.  
  312.  
  313.  
  314.  
  315.  
  316.  
  317.  
  318.  
  319.  
  320.  
  321.  
  322.  
  323.  
  324.  
  325.  
  326.  
  327. Sun Release 4.1           Last change:                          5
  328.  
  329.  
  330.  
  331.